SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE  Procedure [dbo].[SP_TCMOVI_BANC_I04]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS              --*/    
/*---Sistema              : Presupuesto                --*/    
/*---M©dulo               : Empresa                    --*/    
/*---Programa             : Grabaci©n Cabecera         --*/    
/*---                       Movimiento Bancos(Ingresos)--*/    
/*---Script               : tcmovi_b.sql               --*/    
/*---Nombre SP            : MR_TCMOVI_BANC_I02         --*/    
/*---Desarrollado por     : Javier Flores A.           --*/    
/*---Fecha Creaci©n       : 08/06/1999                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi©n              : 6.5                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Modificado 1 por     : Maribel Julca Rodriguez    --*/    
/*---Fecha Modificaci©n   : 21/04/2005                 --*/     
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*--- Drop Proc SP_TCMOVI_BANC_I02                     --*/    
/*--- Grant all on SP_TCMOVI_BANC_I02 to public        --*/     
/*--- Exec SP_TCMOVI_BANC_I02                          --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR   TD_VC_002,     
 @ISCO_USUA_MODI  TD_VC_008_USUA,    
 @ISCO_BANC   TD_VC_003,     
 @ISNU_CNTA_BANC  TD_VC_020,    
 @ISAA_BNCO   TD_VC_004,     
 @ISMM_BNCO   TD_VC_002,     
 @ISTI_MOVI_BANC  TD_VC_001,      
 @IDFE_OPER   TD_DT_001,     
 @ISCO_TIPO_OPER  TD_VC_003,    
 @ISCO_SUBR   TD_VC_003,     
 @ISCO_TIPO_DOCU  TD_VC_003,     
 @ISNU_DOCU_BANC  TD_VC_020,     
 @INFA_TIPO_CAMB  TD_NU_015_006,     
 @ISCO_BANC_CHEQ  TD_VC_003,     
 @ISNU_CHEQ   TD_VC_020,    
 @INIM_MOVI   TD_NU_016_004,     
 @ISTI_ENTI   TD_VC_001,    
 @ISCO_ENTI   TD_VC_020,     
 @ISDE_NOMB_ORDE  TD_VC_100,     
 @ISSI_SOLO_BANC  TD_VC_001_SINO,     
 @ISDE_OBSE   TD_VC_100,     
 @ISTI_CORR_INEG  TD_VC_001,    
 @INUL_CORR_INGR  TD_IN_001,    
 @INUL_CORR_INEG  TD_IN_001,    
 @IDFE_DISP   TD_DT_001,    
 @ISCO_ENTR_REND  TD_VC_004,    
 @ISCO_UNID_CNTB  TD_VC_003,    
 @ISNU_RECI_COBR  TD_VC_010,    
 @IDFE_RECI_COBR  TD_DT_001,    
 @IDFE_DIFE   TD_DT_001,    
 @ISCO_GRUP_CONC        TD_VC_020,    
 @ISNU_SOLI   TD_VC_010,    
 @ISST_ASTO_RESU TD_VC_001,    
 @ISNU_COMP_BANC  TD_VC_008 OUTPUT  
 As  
Declare     
   @VNCO_NUEV_NUME TD_IN_001,     
   @VSCO_NUEV_CHAR TD_VC_008,    
   @VNNU_REGI      TD_IN_001,    
   @VSST_INTE_BACH TD_VC_001,    
   @VSTI_OPNI_CARG TD_VC_003,    
   @VSTI_OPNI_ABON TD_VC_003    
    
  Begin Tran SP_TCMOVI_BANC_I04    
  /** inserta en la cabecera de bancos **/    
    
     Select @VSST_INTE_BACH = ST_INTE_BACH,    
 @VSTI_OPNI_CARG = CO_TIPO_OPEG, @VSTI_OPNI_ABON = CO_TIPO_OPER    
     From TMPARA_TESO Where CO_EMPR = @ISCO_EMPR    
    
    
    If Rtrim(@ISCO_BANC_CHEQ) = ''    
       Select @ISCO_BANC_CHEQ = NULL    
    
    If Rtrim(@ISNU_CHEQ) = ''    
       Select @ISNU_CHEQ = NULL    
    
    If Rtrim(@ISCO_TIPO_DOCU) = ''    
       Select @ISCO_TIPO_DOCU = NULL    
    
    If Rtrim(@ISCO_ENTR_REND) = ''    
       Select @ISCO_ENTR_REND = NULL    
    
    -- SI LA INTERFASE ES EN LINEA Y DETALLADA, LEE EL CORRELATIVO DEL LIBRO CONTABLE    
    If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND     
 @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON    
    
        EXEC SP_TTULTI_ASTO_Q01 @ISCO_EMPR,@ISCO_USUA_MODI, @ISCO_UNID_CNTB, @ISCO_TIPO_OPER, @IDFE_OPER, @ISNU_COMP_BANC OUTPUT    
    
    Else    
 Begin    
      Select  @VNNU_REGI = Count(*)     
      From    TCMOVI_BANC    
      Where   CO_EMPR = @ISCO_EMPR     
  And CO_BANC = @ISCO_BANC     
         And NU_CNTA_BANC = @ISNU_CNTA_BANC     
         And AA_BNCO = @ISAA_BNCO    
         And MM_BNCO = @ISMM_BNCO     
       And TI_MOVI_BANC = 'I'      
         And NU_COMP_BANC = @ISNU_COMP_BANC     
    
      If @VNNU_REGI > 0 OR RTRIM(ISNULL(@ISNU_COMP_BANC, '')) = ''    
         Begin             
           Select  @VSCO_NUEV_CHAR = ISNULL(MAX(NU_COMP_BANC), '0')    
           From    TCMOVI_BANC     
    Where   CO_EMPR = @ISCO_EMPR     
           And CO_BANC = @ISCO_BANC     
             And NU_CNTA_BANC = @ISNU_CNTA_BANC     
             And AA_BNCO = @ISAA_BNCO    
             And MM_BNCO = @ISMM_BNCO     
             And TI_MOVI_BANC = 'I'      
    And NU_COMP_BANC LIKE '000%'    
    
           Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1    
    
    Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)    
    
    -- RELLENA DE CEROS HASTA 8 CARACTERES     
    Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'') +LTRIM(RTRIM(@VSCO_NUEV_CHAR))              
    
           Select @ISNU_COMP_BANC = @VSCO_NUEV_CHAR     
              End    
 End    
    
    
    Insert Into TCMOVI_BANC(    
    CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,     
    FE_OPER, CO_TIPO_OPER, CO_SUBR, CO_TIPO_DOCU, NU_DOCU_BANC, FA_TIPO_CAMB, CO_BANC_CHEQ, NU_CHEQ,    
    IM_MOVI, FE_CHEQ,  FE_DISP, FE_ENTR_CHEQ, FE_PROG_CHEQ, TI_ENTI, CO_ENTI, DE_NOMB_ORDE,     
    SI_SOLO_BANC, SI_OPER_CONC, AA_CONC, MM_CONC, DE_OBSE, ST_CONT, NU_PROC, TI_SITU,    
    CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_ENTR_REND, CO_UNID_CONC, NU_RECI_COBR, FE_RECI_COBR, FE_DIFE, CO_GRUP_CONC,    
    NU_SOLI)    
    Values (    
    @ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,     
    @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISCO_TIPO_DOCU, @ISNU_DOCU_BANC, @INFA_TIPO_CAMB,     
    @ISCO_BANC_CHEQ, @ISNU_CHEQ, @INIM_MOVI, NULL,  @IDFE_DISP, NULL, NULL, @ISTI_ENTI, @ISCO_ENTI,     
    @ISDE_NOMB_ORDE, @ISSI_SOLO_BANC, 'N', NULL, NULL, @ISDE_OBSE, 'N', NULL, 'ACT', @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE(),     
    @ISCO_ENTR_REND, @ISCO_UNID_CNTB, @ISNU_RECI_COBR, @IDFE_RECI_COBR, @IDFE_DIFE, @ISCO_GRUP_CONC,     
    @ISNU_SOLI)    
    
    If @@error <> 0    
       Begin    
         Rollback tran    
    Return    
       End        
    
    
    /* Actualizando Estado y Fecha Liquidaci®n Solicitud Caja */    
        
     Update  TMSOLI_CABA     
 Set  TI_SITU = 'LIQ',     
  FE_LIQU = @IDFE_OPER,    
            CO_USUA_MODI = @ISCO_USUA_MODI,     
  FE_USUA_MODI = GETDATE()    
     Where   CO_EMPR = @ISCO_EMPR    
      And NU_SOLI = @ISNU_SOLI    
    
     If @@error <> 0    
            Begin    
            rollback tran    
     return    
        End      
    
   /* ----------- Actualiza los Correlativos ------------------ */    
    If @VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR     
 @ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON    
      Begin        
         If @ISTI_CORR_INEG = 'N'    
            Begin    
       Select @INUL_CORR_INGR = UL_CORR_INGR     
              From   TMSABA_MENS    
           WHERE  CO_EMPR = @ISCO_EMPR      
           And CO_BANC = @ISCO_BANC     
           And NU_CNTA_BANC = @ISNU_CNTA_BANC     
           And AA_BNCO = @ISAA_BNCO     
           And MM_BNCO = @ISMM_BNCO     
     
         Update TMSABA_MENS    
         Set    UL_CORR_INGR = @INUL_CORR_INGR + 1,     
         CO_USUA_MODI = @ISCO_USUA_MODI,     
                       FE_USUA_MODI = GETDATE()    
          Where  CO_EMPR = @ISCO_EMPR     
                      And CO_BANC = @ISCO_BANC     
                      And NU_CNTA_BANC = @ISNU_CNTA_BANC     
                      And AA_BNCO = @ISAA_BNCO     
                      And MM_BNCO = @ISMM_BNCO    
    
         If @@error <> 0     
                 Begin    
                   Rollback tran    
              Return    
                 End    
      End    
       Else    
     Begin    
    Select @INUL_CORR_INEG = UL_CORR_INEG     
         From   TMSABA_MENS    
         WHERE  CO_EMPR = @ISCO_EMPR      
       And CO_BANC = @ISCO_BANC     
           And NU_CNTA_BANC = @ISNU_CNTA_BANC     
           And AA_BNCO = @ISAA_BNCO     
           And MM_BNCO = @ISMM_BNCO     
     
         Update TMSABA_MENS    
         Set    UL_CORR_INEG = @INUL_CORR_INEG + 1,     
         CO_USUA_MODI = @ISCO_USUA_MODI,     
                       FE_USUA_MODI = GETDATE()    
          Where  CO_EMPR = @ISCO_EMPR     
                      And CO_BANC = @ISCO_BANC     
                      And NU_CNTA_BANC = @ISNU_CNTA_BANC     
                      And AA_BNCO = @ISAA_BNCO     
                      And MM_BNCO = @ISMM_BNCO    
    
         If @@error <> 0    
                 Begin    
                   Rollback tran    
              Return    
                 End    
     End    
    End     
    
 Commit Tran    
    
SELECT @ISNU_COMP_BANC    
RETURN    
    
/*----------------------- Fin ---------------------------*/


GO
